FIT2-2023b 第07回 ミニプロサンプル解説 + 実習
企画書の提出が1名しかなかったので、
サンプルコードは開示しますが、「開示したサンプルコードからの差分」のみ採点対象のためコンセプトに留めます
アナウンス再掲
中間発表・最終発表あります
12/20(水)、01/24(水)の2日
どうしても参加できない方はお申し出ください
今週からはひたすら最終成果物の開発
講師、SAを捕まえて進めるのが吉
code:python
import pyxel
pyxel.init(200, 200)
class Bullet:
def __init__(self, x, y):
self.x = x
self.y = y
def move(self):
self.y = self.y - 1
def draw(self):
pyxel.circ(self.x, self.y, 1, 7)
class Player:
def __init__(self):
self.x = 100 # 画面中央
self.y = 180 # 画面下の方
def move(self):
# キーボードの上下左右キーで移動する
if pyxel.btn(pyxel.KEY_LEFT):
self.x = self.x - 1
if pyxel.btn(pyxel.KEY_RIGHT):
self.x = self.x + 1
def shoot(self):
if pyxel.btnp(pyxel.KEY_SPACE):
global bullets
bullets.append(Bullet(self.x, self.y))
# スペースキーを押した瞬間だけ…
# たまを撃つ処理
def draw(self):
pyxel.circ(self.x, self.y, 10, 6)
player = Player() # class Playerのinitが実行される
bullets = [] # 弾のリスト
def update():
global player, bullets
player.move()
player.shoot()
for bullet in bullets:
bullet.move()
def draw():
global player, bullets
pyxel.cls(0) # 背景色を黒に
player.draw()
for bullet in bullets:
bullet.draw()
pyxel.run(update, draw)